package demo.day08

// Kotlin 对象表达式
fun main() {
    // 匿名对象表达方式
//    val p = object : KtBaseDemo04() {
//        override fun add(info: String) {
//            println("子类 add====>${name}+${info}")
//        }
//
//        override fun del(info: String) {
//            println("子类 del====>${name}+${info}")
//        }
//    }
//    p.add("test111")
//    p.del("test222")
    // 具名方式实现
    val p1 = KtBaseDemo04Son()
    p1.add("aaa")
    p1.del("bbb")
    // 对Java接口 用对象表达方式
    val p3 = object : Runnable {
        override fun run() {
            println("任务执行")
        }

    }
    p3.run()

    // 对Java的接口 简洁方式
    val p4 = Runnable {
        println("任务执行2")
    }
    p4.run()
}


open class KtBaseDemo04 {
    open val name = "KtBaseDemo04"
    open fun add(info: String) {
        println("父类 add====>${name}+${info}")
    }

    open fun del(info: String) {
        println("父类 del====>${name}+${info}")
    }
}

class KtBaseDemo04Son : KtBaseDemo04() {
    override fun add(info: String) {
        println("具名 子类 add====>${name}+${info}")
    }

    override fun del(info: String) {
        println("具名 子类 del====>${name}+${info}")
    }
}



